<?php
/**
 * Created by PhpStorm.
 * User: edmmss
 * Date: 2018/11/24
 * Time: 10:19
 */

namespace app\modules\dependencyInjection\controller;

use app\modules\dependencyInjection\DatabaseConfiguration;
use app\modules\dependencyInjection\DatabaseConnection;
use yii\web\Controller;

class DefaultController extends Controller
{
    /**
     * 依赖注入模式示例
     * 用松散耦合的方式来更好的实现可测试、可维护和可扩展的代码。
     * DatabaseConfiguration 被注入  DatabaseConnection  并获取所需的  $config 。
     * 如果没有依赖注入模式， 配置将直接创建  DatabaseConnection 。这对测试和扩展来说很不好。
     *
     * @date   2018/11/24
     * @author edmmss
     * @return bool
     */
    public function actionIndex()
    {
        $databaseConfiguration = new DatabaseConfiguration('127.0.0.1', '3306', 'edmmss', '11');
        $databaseConnection = new DatabaseConnection($databaseConfiguration);

        var_dump($databaseConnection->getDsn());

        return true;
    }
}